diff --git wp-includes/class-wp-embed.php wp-includes/class-wp-embed.php
index 275c280..94db0bf 100644
--- wp-includes/class-wp-embed.php
+++ wp-includes/class-wp-embed.php
@@ -130,7 +130,12 @@ class WP_Embed {
 	 * @uses get_post_meta()
 	 * @uses update_post_meta()
 	 *
-	 * @param array $attr Shortcode attributes.
+	 * @param array $attr {
+	 *     Shortcode attributes. Optional.
+	 *
+	 *     @type int $width  The width of the embed in pixels.
+	 *     @type int $height The height of the embed in pixels.
+	 * }
 	 * @param string $url The URL attempting to be embedded.
 	 * @return string The embed HTML on success, otherwise the original URL.
 	 */
@@ -160,7 +165,7 @@ class WP_Embed {
 						 *
 						 * @param mixed  $return The shortcode callback function to call.
 						 * @param string $url    The attempted embed URL.
-						 * @param array  $attr   An array of shortcode attributes.
+						 * @param array  $attr   An array of shortcode attributes. @see WP_Embed::shortcode()
 						 */
 						return apply_filters( 'embed_handler_html', $return, $url, $attr );
 				}
@@ -191,7 +196,7 @@ class WP_Embed {
 					 *
 					 * @param mixed  $cache   The cached HTML result, stored in post meta.
 					 * @param string $url     The attempted embed URL.
-					 * @param array  $attr    An array of shortcode attributes.
+					 * @param array  $attr    An array of shortcode attributes. @see WP_Embed::shortcode()
 					 * @param int    $post_ID Post ID.
 					 */
 					return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_ID );
diff --git wp-includes/media.php wp-includes/media.php
index 8e150a5..b99096b 100644
--- wp-includes/media.php
+++ wp-includes/media.php
@@ -623,7 +623,15 @@ add_shortcode('caption', 'img_caption_shortcode');
  *
  * @since 2.6.0
  *
- * @param array $attr Attributes attributed to the shortcode.
+ * @param array $attr {
+ *     Attributes of the caption shortcode.
+ *
+ *     @type string $id      The ID of the div element for the caption.
+ *     @type string $align   The class name that aligns the caption. Default 'alignnone'. Accepts 'alignleft',
+ *                           'aligncenter', alignright', 'alignnone'.
+ *     @type int    $width   The width of the caption.
+ *     @type string $caption The caption text.
+ * }
  * @param string $content Optional. Shortcode content.
  * @return string
  */
@@ -636,8 +644,19 @@ function img_caption_shortcode($attr, $content = null) {
 		}
 	}
 
-	// Allow plugins/themes to override the default caption template.
-	$output = apply_filters('img_caption_shortcode', '', $attr, $content);
+	/**
+	 * Allow plugins/themes to short-circuit the default caption template.
+	 *
+	 * If the filtered output isn't empty, it will be used instead of generating the default caption template.
+	 *
+	 * @since 2.6.0
+	 *
+	 * @param string $output  The caption output. Default ''.
+	 * @param array  $attr    Attributes of the caption shortcode. @see img_caption_shortcode()
+	 * @param string $content The image element, possibly wrapped in a hyperlink.
+	 */
+	$output = '';
+	$output = apply_filters( 'img_caption_shortcode', $output, $attr, $content );
 	if ( $output != '' )
 		return $output;
 
@@ -665,16 +684,9 @@ function img_caption_shortcode($attr, $content = null) {
 	 *
 	 * @since 3.7.0
 	 *
-	 * @param int $caption_width Width in pixels. To remove this inline style, return zero.
-	 * @param array $atts {
-	 *     The attributes of the caption shortcode.
-	 *
-	 *     @type string 'id'      The ID of the div element for the caption.
-	 *     @type string 'align'   The class name that aligns the caption. Default 'alignnone'.
-	 *     @type int    'width'   The width of the image being captioned.
-	 *     @type string 'caption' The image's caption.
-	 * }
-	 * @param string $content The image element, possibly wrapped in a hyperlink.
+	 * @param int    $caption_width Width in pixels. To remove this inline style, return zero.
+	 * @param array  $atts          Attributes of the caption shortcode. @see img_caption_shortcode()
+	 * @param string $content       The image element, possibly wrapped in a hyperlink.
 	 */
 	$caption_width = apply_filters( 'img_caption_shortcode_width', $caption_width, $atts, $content );
 
@@ -696,7 +708,23 @@ add_shortcode('gallery', 'gallery_shortcode');
  *
  * @since 2.5.0
  *
- * @param array $attr Attributes of the shortcode.
+ * @param array $attr {
+ *     Attributes of the gallery shortcode.
+ *
+ *     @type string $order      The order of the images in the gallery. Default 'ASC'. Accepts 'ASC', 'DESC'.
+ *     @type string $orderby    The field to use when ordering the images. Default 'menu_order ID'. Accepts any
+ *                              valid SQL ORDERBY statement.
+ *     @type int    $id         The post ID. Default The current post ID.
+ *     @type string $itemtag    The HTML tag to use for each image in the gallery. Default 'dl'.
+ *     @type string $icontag    The HTML tag to use for each image's icon. Default 'dt'.
+ *     @type string $captiontag The HTML tag to use for each image's caption. Default 'dd'.
+ *     @type int    $columns    The number of columns of images to display. Default 3.
+ *     @type string $size       The size of the images to display. Default 'thumbnail'.
+ *     @type string $ids        A comma-separated list of IDs of attachments to display. Default ''.
+ *     @type string $include    A comma-separated list of IDs of attachments to include. Default ''.
+ *     @type string $exclude    A comma-separated list of IDs of attachments to exclude. Default ''.
+ *     @type string $link       What to link each image to. Default '' (links to the attachment page). Accepts 'file', 'none'.
+ * }
  * @return string HTML content to display gallery.
  */
 function gallery_shortcode($attr) {
@@ -712,8 +740,17 @@ function gallery_shortcode($attr) {
 		$attr['include'] = $attr['ids'];
 	}
 
-	// Allow plugins/themes to override the default gallery template.
-	$output = apply_filters('post_gallery', '', $attr);
+	/**
+	 * Allow plugins/themes to short-circuit the default gallery template.
+	 *
+	 * If the filtered output isn't empty, it will be used instead of generating the default gallery template.
+	 *
+	 * @since 2.5.0
+	 *
+	 * @param string $output The gallery output. Default ''.
+	 * @param array  $attr   Attributes of the gallery shortcode. @see gallery_shortcode()
+	 */
+	$output = apply_filters( 'post_gallery', '', $attr );
 	if ( $output != '' )
 		return $output;
 
@@ -875,7 +912,17 @@ function wp_get_audio_extensions() {
  *
  * @since 3.6.0
  *
- * @param array  $attr    Attributes of the shortcode.
+ * @param array $attr {
+ *     Attributes of the shortcode.
+ *
+ *     @type string $src      The URL to the source of the audio file. Default ''.
+ *     @type string $loop     The 'loop' attribute for the `<audio>` element. Default ''.
+ *     @type string $autoplay The 'autoplay' attribute for the `<audio>` element. Default ''.
+ *     @type string $preload  The 'preload' attribute for the `<audio>` element. Default ''.
+ *     @type string $class    The 'class' attribute for the `<audio>` element. Default 'wp-audio-shortcode'.
+ *     @type string $id       The 'id' attribute for the `<audio>` element. Default 'audio-{$post_id}-{$instances}'.
+ *     @type string $style    The 'style' attribute for the `<audio>` element. Default 'width: 100%'.
+ * }
  * @param string $content Optional. Shortcode content.
  * @return string HTML content to display audio.
  */
@@ -886,16 +933,19 @@ function wp_audio_shortcode( $attr, $content = '' ) {
 	$instances++;
 
 	/**
-	 * Override the default audio shortcode.
+	 * Short-circuit the default audio template.
 	 *
-	 * @since 3.7.0
+	 * If the filtered output isn't empty, it will be used instead of generating the default audio template.
+	 *
+	 * @since 3.6.0
 	 *
-	 * @param null              Empty variable to be replaced with shortcode markup.
-	 * @param array  $attr      Attributes of the shortcode.
+	 * @param string $html      Empty variable to be replaced with shortcode markup.
+	 * @param array  $attr      Attributes of the shortcode. @see wp_audio_shortcode()
 	 * @param string $content   Shortcode content.
 	 * @param int    $instances Unique numeric ID of this audio shortcode instance.
 	 */
-	$html = apply_filters( 'wp_audio_shortcode_override', '', $attr, $content, $instances );
+	$html = '';
+	$html = apply_filters( 'wp_audio_shortcode_override', $html, $attr, $content, $instances );
 	if ( '' !== $html )
 		return $html;
 
@@ -1012,7 +1062,19 @@ function wp_get_video_extensions() {
  *
  * @since 3.6.0
  *
- * @param array  $attr    Attributes of the shortcode.
+ * @param array $attr {
+ *     Attributes of the shortcode.
+ *
+ *     @type string $src      The URL to the source of the video file. Default ''.
+ *     @type int    $height   The height of the video embed in pixels. Default 360.
+ *     @type int    $width    The width of the video embed in pixels. Default $content_width or 640.
+ *     @type string $poster   The 'poster' attribute for the `<video>` element. Default ''.
+ *     @type string $loop     The 'loop' attribute for the `<video>` element. Default ''.
+ *     @type string $autoplay The 'autoplay' attribute for the `<video>` element. Default ''.
+ *     @type string $preload  The 'preload' attribute for the `<video>` element. Default 'metadata'.
+ *     @type string $class    The 'class' attribute for the `<video>` element. Default 'wp-video-shortcode'.
+ *     @type string $id       The 'id' attribute for the `<video>` element. Default 'video-{$post_id}-{$instances}'.
+ * }
  * @param string $content Optional. Shortcode content.
  * @return string HTML content to display video.
  */
@@ -1024,16 +1086,19 @@ function wp_video_shortcode( $attr, $content = '' ) {
 	$instances++;
 
 	/**
-	 * Override the default video shortcode.
+	 * Short-circuit the default video template.
 	 *
-	 * @since 3.7.0
+	 * If the filtered output isn't empty, it will be used instead of generating the default video template.
 	 *
-	 * @param null              Empty variable to be replaced with shortcode markup.
-	 * @param array  $attr      Attributes of the shortcode.
+	 * @since 3.6.0
+	 *
+	 * @param string $html      Empty variable to be replaced with shortcode markup.
+	 * @param array  $attr      Attributes of the shortcode. @see wp_video_shortcode()
 	 * @param string $content   Shortcode content.
 	 * @param int    $instances Unique numeric ID of this video shortcode instance.
 	 */
-	$html = apply_filters( 'wp_video_shortcode_override', '', $attr, $content, $instances );
+	$html = '';
+	$html = apply_filters( 'wp_video_shortcode_override', $html, $attr, $content, $instances );
 	if ( '' !== $html )
 		return $html;
 
