xref: /aosp_15_r20/external/libwebm/webm_parser/src/skip_callback.h (revision 103e46e4cd4b6efcf6001f23fa8665fb110abf8d)
1*103e46e4SHarish Mahendrakar // Copyright (c) 2016 The WebM project authors. All Rights Reserved.
2*103e46e4SHarish Mahendrakar //
3*103e46e4SHarish Mahendrakar // Use of this source code is governed by a BSD-style license
4*103e46e4SHarish Mahendrakar // that can be found in the LICENSE file in the root of the source
5*103e46e4SHarish Mahendrakar // tree. An additional intellectual property rights grant can be found
6*103e46e4SHarish Mahendrakar // in the file PATENTS.  All contributing project authors may
7*103e46e4SHarish Mahendrakar // be found in the AUTHORS file in the root of the source tree.
8*103e46e4SHarish Mahendrakar #ifndef SRC_SKIP_CALLBACK_H_
9*103e46e4SHarish Mahendrakar #define SRC_SKIP_CALLBACK_H_
10*103e46e4SHarish Mahendrakar 
11*103e46e4SHarish Mahendrakar #include "webm/callback.h"
12*103e46e4SHarish Mahendrakar #include "webm/dom_types.h"
13*103e46e4SHarish Mahendrakar #include "webm/reader.h"
14*103e46e4SHarish Mahendrakar #include "webm/status.h"
15*103e46e4SHarish Mahendrakar 
16*103e46e4SHarish Mahendrakar namespace webm {
17*103e46e4SHarish Mahendrakar 
18*103e46e4SHarish Mahendrakar // An implementation of Callback that skips all elements. Every method that
19*103e46e4SHarish Mahendrakar // yields an action will yield Action::kSkip, and Reader::Skip will be called
20*103e46e4SHarish Mahendrakar // if the callback ever needs to process data from the byte stream.
21*103e46e4SHarish Mahendrakar class SkipCallback : public Callback {
22*103e46e4SHarish Mahendrakar  public:
OnElementBegin(const ElementMetadata &,Action * action)23*103e46e4SHarish Mahendrakar   Status OnElementBegin(const ElementMetadata& /* metadata */,
24*103e46e4SHarish Mahendrakar                         Action* action) override {
25*103e46e4SHarish Mahendrakar     *action = Action::kSkip;
26*103e46e4SHarish Mahendrakar     return Status(Status::kOkCompleted);
27*103e46e4SHarish Mahendrakar   }
28*103e46e4SHarish Mahendrakar 
OnSegmentBegin(const ElementMetadata &,Action * action)29*103e46e4SHarish Mahendrakar   Status OnSegmentBegin(const ElementMetadata& /* metadata */,
30*103e46e4SHarish Mahendrakar                         Action* action) override {
31*103e46e4SHarish Mahendrakar     *action = Action::kSkip;
32*103e46e4SHarish Mahendrakar     return Status(Status::kOkCompleted);
33*103e46e4SHarish Mahendrakar   }
34*103e46e4SHarish Mahendrakar 
OnClusterBegin(const ElementMetadata &,const Cluster &,Action * action)35*103e46e4SHarish Mahendrakar   Status OnClusterBegin(const ElementMetadata& /* metadata */,
36*103e46e4SHarish Mahendrakar                         const Cluster& /* cluster */, Action* action) override {
37*103e46e4SHarish Mahendrakar     *action = Action::kSkip;
38*103e46e4SHarish Mahendrakar     return Status(Status::kOkCompleted);
39*103e46e4SHarish Mahendrakar   }
40*103e46e4SHarish Mahendrakar 
OnSimpleBlockBegin(const ElementMetadata &,const SimpleBlock &,Action * action)41*103e46e4SHarish Mahendrakar   Status OnSimpleBlockBegin(const ElementMetadata& /* metadata */,
42*103e46e4SHarish Mahendrakar                             const SimpleBlock& /* simple_block */,
43*103e46e4SHarish Mahendrakar                             Action* action) override {
44*103e46e4SHarish Mahendrakar     *action = Action::kSkip;
45*103e46e4SHarish Mahendrakar     return Status(Status::kOkCompleted);
46*103e46e4SHarish Mahendrakar   }
47*103e46e4SHarish Mahendrakar 
OnBlockGroupBegin(const ElementMetadata &,Action * action)48*103e46e4SHarish Mahendrakar   Status OnBlockGroupBegin(const ElementMetadata& /* metadata */,
49*103e46e4SHarish Mahendrakar                            Action* action) override {
50*103e46e4SHarish Mahendrakar     *action = Action::kSkip;
51*103e46e4SHarish Mahendrakar     return Status(Status::kOkCompleted);
52*103e46e4SHarish Mahendrakar   }
53*103e46e4SHarish Mahendrakar 
OnBlockBegin(const ElementMetadata &,const Block &,Action * action)54*103e46e4SHarish Mahendrakar   Status OnBlockBegin(const ElementMetadata& /* metadata */,
55*103e46e4SHarish Mahendrakar                       const Block& /* block */, Action* action) override {
56*103e46e4SHarish Mahendrakar     *action = Action::kSkip;
57*103e46e4SHarish Mahendrakar     return Status(Status::kOkCompleted);
58*103e46e4SHarish Mahendrakar   }
59*103e46e4SHarish Mahendrakar };
60*103e46e4SHarish Mahendrakar 
61*103e46e4SHarish Mahendrakar }  // namespace webm
62*103e46e4SHarish Mahendrakar 
63*103e46e4SHarish Mahendrakar #endif  // SRC_SKIP_CALLBACK_H_
64