Index: wp-includes/media.php
===================================================================
--- wp-includes/media.php	(revision 25351)
+++ wp-includes/media.php	(working copy)
@@ -853,6 +853,19 @@
 	static $instances = 0;
 	$instances++;
 
+	/**
+	 * Override the default audio shortcode.
+	 *
+	 * @since 3.7.0
+	 *
+	 * @param null Empty variable to be replaced with shortcode markup.
+	 * @param array $attr Attributes of the shortcode.
+	 * @param int $instances Unique numeric ID of this audio shortcode instance.
+	 */
+	$html = apply_filters( 'wp_audio_shortcode_override', null, $attr, $instances );
+	if ( is_string( $html ) )
+		return $html;
+
 	$audio = null;
 
 	$default_types = wp_get_audio_extensions();
@@ -946,7 +959,7 @@
 
 	return apply_filters( 'wp_audio_shortcode', $html, $atts, $audio, $post_id, $library );
 }
-add_shortcode( 'audio', apply_filters( 'wp_audio_shortcode_handler', 'wp_audio_shortcode' ) );
+add_shortcode( 'audio', 'wp_audio_shortcode' );
 
 /**
  * Return a filtered list of WP-supported video formats
@@ -976,6 +989,19 @@
 	static $instances = 0;
 	$instances++;
 
+	/**
+	 * Override the default video shortcode.
+	 *
+	 * @since 3.7.0
+	 *
+	 * @param null Empty variable to be replaced with shortcode markup.
+	 * @param array $attr Attributes passed from the shortcode.
+	 * @param int $instances Unique numeric ID of this video shortcode instance.
+	 */
+	$html = apply_filters( 'wp_video_shortcode_override', null, $attr, $instances );
+	if ( is_string( $html ) )
+		return $html;
+
 	$video = null;
 
 	$default_types = wp_get_video_extensions();
@@ -1090,7 +1116,7 @@
 	$html = sprintf( '<div style="width: %dpx; max-width: 100%%;">%s</div>', $width, $html );
 	return apply_filters( 'wp_video_shortcode', $html, $atts, $video, $post_id, $library );
 }
-add_shortcode( 'video', apply_filters( 'wp_video_shortcode_handler', 'wp_video_shortcode' ) );
+add_shortcode( 'video', 'wp_video_shortcode' );
 
 /**
  * Display previous image link that has the same post parent.
